iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
自我挑戰組

<< Unreal 進廠維修,就從賽車遊戲開始 >>系列 第 28

Day28. 【Unreal Engine 5】UE5 檢查點 Check Point (2) - 追蹤檢查點

  • 分享至 

  • xImage
  •  

閱讀提醒:本文會在官方高級賽車模板上實作檢查點。

Unreal Engine:5.03 高級賽車模板

OS:Windows10

追蹤檢查點

今天來設置一個追蹤器,可以管理場上所有的檢查點,以及記錄圈數等等相關的數值。

Actor

  • 首先建立一個名為 Tracker 的 Actor 藍圖。

  • Mesh 下方新增一個 Billboard

  • 新增所需的變數

    • MaxLap (Int)
    • GoldTime (Float)
    • SilverTime (Float)
    • BronzeTime (Float)
    • DefaultBestLap (Float)
    • DefaultBestTime (Float)
    • CheckPoints (array)
    • TotalCheckPoints (Int)
    • NameOfMap (Text)
    • SaveGameName (String)
    • LevelMusic (Ambient Sounds)
    • CheckPointSoundFX (Ambient Sounds)
    • ControllerReff (MyPlayerContrller)
  • 看到 Begin Play 事件,一樣先 Get Controller,然後呼叫 Apply SettingsStart Sequence,就是遊戲相關的初始設置。

  • 在空白處右鍵選擇 Custom Event,自定義事件,命名為 Apply Settings,主要在遊戲開始時,將時間、圈數、控制器...等,做初始設定。

  • 接下來是新增 Start Sequence 的自定義事件,Input 是 Checkpoints 的陣列,會依序去啟用 CheckPoint。

  • 接著通過 For each Loop,每通過一個 CheckPoint,就要清除掉。

  • 最後自定義一個事件為 CheckPointCleared,就是清除掉檢查點,也確認遊戲目前圈數以及是否結束。


接下來,我們來撰寫相關的 function。

  • 首先是 UpdateTimes,新增 UpdateTimes function,設置所有相關的 Float 變數,包含 GoldTimeSilverTime ... 等等。

  • 再來是 ActivateCheckPoint,啟用下一個會路過的 CheckPoint

  • RaceCompleteCheck 則是判斷遊戲是否結束,利用目前圈數是否大於等於最大圈數做為判定條件。
    在這個 function 內新增 Local Complete ,是 bool 的 local Variables

  • LapCheck 主要是判定圈數、更新圈數和設置啟用下一個 CheckPoint。

場景

  • 回到場景的 Viewport,把 Tracker 藍圖拉到場景中。
  • Detail 面板中設定預設的相關數值,上面建立的變數都需要給一個預設值。
  • 最後 Checkpoints 的陣列,需把場上所有檢查點新增到陣列中。

這邊就算是完成追蹤器啦~

小結:檢查點很多地方是照著 UE4 官方教學做的,其實有很多地方應該可以再優化一下,之後改完再上來更新。

/images/emoticon/emoticon26.gif


上一篇
Day27. 【Unreal Engine 5】UE5 檢查點 Check Point (1) - Setting
下一篇
Day29. 【Unreal Engine 5】UE5 Camera:攝影機按照車速調整畫面狀態
系列文
<< Unreal 進廠維修,就從賽車遊戲開始 >>30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言